#include "detalhemodel.h"

DetalheModel::DetalheModel(QObject *parent) :
    QAbstractListModel(parent)
{
    this->setRoleNames(DetalheItem::roleNames());
}

int DetalheModel::rowCount(const QModelIndex &parent) const
{
    return _lista.length();
}

QVariant DetalheModel::data(const QModelIndex &index, int role) const
{
    return (index.isValid() ? _lista[index.row()]->data(role) : QVariant());
}

void DetalheModel::detalheAdd(DetalheItem *item)
{
    beginInsertRows(QModelIndex(), 0, 0);
    _lista.prepend(item);    
    endInsertRows();
}

void DetalheModel::limpar()
{
    if (_lista.count() > 0) {
        beginRemoveRows(QModelIndex(), 0, _lista.count() - 1);
        foreach(DetalheItem *item, _lista)
            delete item;
        _lista.clear();
        endRemoveRows();
    }
}

void DetalheModel::refresh()
{
    emit dataChanged(createIndex(0, 0), createIndex(_lista.count()-1, 0));
}





